package com.superdry.utils;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class StringUtils {
	public static final long minuteMillis = 60 * 1000l;
	public static final long hourMillis = 60 * 60 * 1000l;
	public static final long dayMillis = 24 * 60 * 60 * 1000l;
	public static final long monthMillis = 30 * 24 * 60 * 60 * 1000l;

	// 判断字符是否为空
	public static boolean isEmpty(String input) {
		if (input == null || "".equals(input))
			return true;

		for (int i = 0; i < input.length(); i++) {
			char c = input.charAt(i);
			if (c != ' ' && c != '\t' && c != '\r' && c != '\n') {
				return false;
			}
		}
		return true;
	}

	// 转化信息来源
	public static String convertFroType(int type) {

		switch (type) {
		case 1:
			return "朋友";
		case 2:
			return "朋友的朋友";
		case 3:
			return "热门";
		case 4:
			return "随机";
		default:
			return "其他";
		}
	}

	// 将时间差 转化为 ..前(ps:1天前 2小时前) 的形式
	public static String dateConvert(long time) {

		String ftime = "";
		// 判断月份
		long monResult = time / monthMillis;
		if (monResult > 0) {
			if (monResult > 3) {
				ftime = "很久很久了";
			} else {
				ftime = "很久了";
			}
			return ftime;
		}
		// 判断天数
		long dayResult = time / dayMillis;
		if (dayResult > 2) {
			return dayResult + "天啦";
		}

		// 判断小时
		long hourResult = time / hourMillis;
		if (hourResult > 0) {
			if (hourResult > 48 && hourResult < 72) {
				ftime = "2天啦";
			} else if (hourResult > 24 && hourResult < 48) {
				ftime = "1天啦";
			} else if (hourResult < 24 && hourResult > 12) {
				ftime = "大半天了";
			} else if (hourResult > 6 && hourResult < 12) {
				ftime = "小半天了";
			} else {
				ftime = "刚过了一大会";
			}

			return ftime;
		}
		// 判断分钟

		long minResult = time / minuteMillis;

		if (minResult > 10) {
			ftime = "刚过一小会";
			return ftime;
		} else {
			ftime = "刚刚";
			return ftime;
		}

	}

	// 将时间差 转化为 ..前(ps:1天前 2小时前) 的形式
	public static String dateConvert1(long time) {

		String ftime = "";
		if (time / dayMillis == 0) {

			if (time / hourMillis == 0) {

				if (time / minuteMillis == 0) {
					return "1分钟前";
				} else {
					return time / minuteMillis + "分钟前";
				}

			} else {
				return time / hourMillis + "小时前";
			}

		} else {
			return time / dayMillis + "天前";
		}
	}

	// 判断 点赞数或评论数 如果为0的话则不显示
	public static String getDisplayNum(int num) {
		return num == 0 ? "" : num + "";
	}

	public static String getCurrentTime(String format) {
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.getDefault());
		String currentTime = sdf.format(date);
		return currentTime;
	}

	public static String getCurrentTime() {
		return getCurrentTime("yyyy-MM-dd  HH:mm:ss");
	}

	// 判断是不是连接网络
	public static boolean isNetworkAvailable(Context context) {

		ConnectivityManager networkmanager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
		if (networkmanager == null) {
			return false;
		} else {

			NetworkInfo[] networks = networkmanager.getAllNetworkInfo();
			for (NetworkInfo network : networks) {
				if (network.getState() == NetworkInfo.State.CONNECTED)
					return true;
			}
			return false;
		}

	}

	// 时间类型转换
	public static String dataTransform(long tiemstamp) {
		SimpleDateFormat format = new SimpleDateFormat("MM-dd MM:ss");
		return format.format(new Date(tiemstamp));
	}

	// 验证手机号
	public static boolean matchStr(String sourceStr, String regex) {
		// 适配的手机号
		// 移动：134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
		// 联通：130、131、132、152、155、156、185、186
		// 电信：133、153、180、189、（1349卫通）
		// Pattern p =
		// Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0-9])|(14[0-9])|(17[0-9]))\\d{8}$");
		Pattern p = Pattern.compile(regex);
		Matcher m = p.matcher(sourceStr);
		return m.find();
	}

}
